﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Whe;
using WOS;
using WOS.Common;

namespace WOS.Upload
{
    internal sealed class UploadItemLink
    {
        #region Private Fields
        private readonly Guid id;
        private readonly Guid file;
        private readonly Guid point;

        private Uri download;
        private Uri delete;
        private long progress;
        private UploadLinkStatus status;
        #endregion
        #region Constructors
        public UploadItemLink(Guid id, Guid file, Guid point)
        {
            this.id = id;
            this.file = file;
            this.point = point;
        }
        #endregion

        #region Events
        public event EventHandler DownloadChanged;
        public event EventHandler DeleteChanged;
        public event EventHandler ProgressChanged;
        public event EventHandler StatusChanged;
        #endregion
        #region Public Members
        public Guid Id
        {
            get { return this.id; }
        }

        public Guid File
        {
            get { return this.file; }
        }

        public Guid Point
        {
            get { return this.point; }
        }

        public Uri Download
        {
            get { return this.download; }
            set { this.download = value; }
        }

        public Uri Delete
        {
            get { return this.delete; }
            set { this.delete = value; }
        }

        public long Progress
        {
            get { return this.progress; }
            set { this.progress = value; }
        }

        public UploadLinkStatus Status
        {
            get { return this.status; }
            set { this.status = value; }
        }
        #endregion
    }
}
